home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
fapx
/
fapxdnld.plp
< prev
next >
Wrap
Text File
|
1991-10-18
|
4KB
|
159 lines
/************************************************************************
* データライブラリからの自動ダウンロード処理 *
*************************************************************************/
%AUTOdwn1
{
line:=line+1;
linebuf:={};
case (
file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{case (
@mlast>=@getchar(file,5,1)&&@mcheck==0,
{Yes},
{linebuf:=@memo(@getchar(file,5,1),line,1)},
{No},
{
SNDMSG({okasi_f.snd});
display(file|{が使えません\n});
linebuf:={};
}
)
},
{No},
{linebuf:=@read(file,line,1)}
);
case (
@head(linebuf,{=}),
{forum}, /* フォーラムからのダウンロード */
{
DLIBDOWN(
@tail(linebuf,{forum=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{datano=},{;}),
@tail(linebuf,{docfile=},{;}),
@tail(linebuf,{datafile=},{;})
);
AUTOdwn1; /* 終わったら次の行を読む */
},
{profile}, /* プロフィール情報のダウンロード */
{
PROFDOWN(
@tail(linebuf,{profile=},{;})
);
AUTOdwn1; /* 終わったら次の行を読む */
},
{},, /* 空文字列なら終了 */
,AUTOdwn1 /* それ以外なら次の行を読む */
);
};
%AUTOdown
{
[file]
case (
@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{
line:=0;
AUTOdwn1;
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
}
);
};
/* ダウンロード制御ファイル指定の有無の判定処理 */
%AUTODNLD
{
display({自動ダウンロードを開始します\n});
footnote({自動ダウンロードをしています});
case (
dnldcntl={},
{No},{AUTOdown(dnldcntl)},
{Yes},
);
};
%DLIBDOWN
{
[forum,libno,datano,docfile,datafile]
display(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします\n});
footnote(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします});
type ({GO }|forum|{\n});
case (
@FORUMTOP={OK},
{No},,
{Yes},{LIBDOWN(libno,datano,docfile,datafile)}
);
};
%LIBDOWN{
[libno,datano,docfile,datafile]
type({LIB }|libno|{\n});
wait (
Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{4:ダウンロード E:終了)\n>},
{
type({DOWN }|datano|{ PROT:BPL\n});
mkdir2(@body(docfile,,{\}));
receive(docfile);
WAITCHAR(Wtime2*5,{項目 (1:OK 2:NG E:終了)\n:},{});
stoprec;
type({1\n});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
mkdir2(@body(datafile,,{\}));
type(datafile|{\n});
WAITCHAR(,{-ダウンロード終了-},{});
WAITCHAR(Wtime2,{E:終了)\n>},{});
},
{\n>},
);
};
%PROFDOWN
{
[uid]
%readall{
wait(Wtime2*3,{AbortOff({ホストがおもいよ~})},
{◆該当利用者はいません◆\n>},,
{プロフィールはありません-\n>},,
{◆入力データエラー◆\n>},,
{\n>},
{wait(2);case(@laststr(2),{>},,,readall)}
);
};
var UID [90];
display(uid|{の}|{プロフィール情報をダウンロードします\n});
footnote(uid|{の}|{プロフィール情報をダウンロードします\n});
mkdir2(LOG2|{profile});
UID:=uid;
loop ({
%id1 @head(UID,{,});
UID:=@body(UID,{,});
case (@nochar(id1)==8,
{Yes},
{
dispoff({Yes});
command({del }|LOG2|{profile\}|id1|{.prf});
dispoff({No});
receive(LOG2|{profile\}|id1|{.prf});
type({PROF }|id1|{\n});
readall;
stoprec;
}
);
case(UID,{},{im({No})},,{im({Yes})});
});
};
AUTODNLD;